1
Arquitetando Portabilidade em Clusters Heterogêneos
AI022Lesson 2
00:00

O cerne do Interface de Computação Heterogênea para Portabilidade (HIP) reside em sua capacidade de abstrair ferramentas específicas de hardware em uma API de tempo de execução C++ unificada. Ao utilizar um Paradigma de Código Único, os desenvolvedores podem manter uma única base de código que é mapeada dinamicamente para os backends da NVIDIA ou AMD.

1. Resolução de Hardware Baseada em Caminho

A arquitetura depende de marcadores de ambiente para atuar como âncoras de navegação para o sistema de compilação. Esses marcadores informam ao hipcc wrapper de compilador onde encontrar as bibliotecas e cabeçalhos necessários para o dispositivo.

  • CUDA_PATH: A âncora principal para a pilha da NVIDIA (fluxos de trabalho NVCC/PTX).
  • HIP_PATH: A âncora principal para a pilha AMD ROCm (fluxos de trabalho Clang/LLVM).
Código-fonte HIPPilha da NVIDIA$CUDA_PATHPilha AMD ROCm$HIP_PATHCluster Heterogêneo

2. Abstraindo a Pilha de Computação

A portabilidade é alcançada ao desacoplar a camada de aplicação da microarquitetura. A lógica é resolvida no momento da compilação usando hipcc, garantindo que a manutenção de código $O(1)$ resulte em compatibilidade com hardware $O(N)$.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>